home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Tools / Languages / Caml Light 0.61 / Source / src / lib / string.mlp < prev    next >
Encoding:
Text File  |  1993-09-24  |  1.7 KB  |  72 lines  |  [TEXT/MPS ]

  1. (* Operation on strings, with sanity checks *)
  2.  
  3. (**) #open "int";;
  4. (**) #open "exc";;
  5.  
  6. (*
  7. #ifdef macintosh
  8. #include "::runtime:config.h"
  9. #else
  10. #include "../runtime/config.h"
  11. #endif
  12. #ifdef SIXTYFOUR
  13. #define MAX_STRING_LENGTH 0x100000000000000
  14. #else
  15. #ifdef SIXTEEN
  16. #define MAX_STRING_LENGTH 0x10000
  17. #else
  18. #define MAX_STRING_LENGTH 0x1000000
  19. #endif
  20. #endif
  21. *)
  22.  
  23. let create_string n =
  24.   if n < 0 or n >= MAX_STRING_LENGTH
  25.   then invalid_arg "create_string"
  26.   else fstring__create_string n
  27. ;;
  28.  
  29. let make_string n c =
  30.   if n < 0 or n >= MAX_STRING_LENGTH
  31.   then invalid_arg "make_string"
  32.   else fstring__make_string n c
  33. ;;
  34.  
  35. let nth_char s n =
  36.   if n < 0 or n >= string_length s
  37.   then invalid_arg "nth_char"
  38.   else fstring__nth_char s n
  39. ;;
  40. let set_nth_char s n c =
  41.   if n < 0 or n >= string_length s
  42.   then invalid_arg "set_nth_char"
  43.   else fstring__set_nth_char s n c
  44. ;;
  45. let fill_string s start len c =
  46.   if start < 0 or len < 0 or start+len > string_length s
  47.   then invalid_arg "fill_string"
  48.   else fstring__fill_string s start len c
  49. ;;
  50. let blit_string src start_src dst start_dst len =
  51.   if start_src < 0 or start_src + len > string_length src
  52.   or start_dst < 0 or start_dst + len > string_length dst
  53.   or len < 0
  54.   then invalid_arg "blit_string"
  55.   else fstring__blit_string src start_src dst start_dst len
  56. ;;
  57. let prefix ^ = fstring__prefix ^
  58. ;;
  59. let sub_string s start len =
  60.   if start < 0 or len < 0 or start+len > string_length s
  61.   then invalid_arg "sub_string"
  62.   else fstring__sub_string s start len
  63. ;;
  64. let replace_string dest src pos =
  65.   if pos < 0 or pos + string_length src > string_length dest
  66.   then invalid_arg "replace_string"
  67.   else fstring__replace_string dest src pos
  68. ;;
  69.  
  70. let string_for_read = fstring__string_for_read
  71. ;;
  72.